系列專欄:從 AWS 視角征服 Azure:AZ-900 30 天通關實戰
難度指數:★★★☆☆
今日任務:區分 Authentication 與 Authorization、掌握 Microsoft Entra ID 的核心角色(Tenant、使用者、群組、應用程式註冊),並理解 SSO、MFA、Passwordless 與 Conditional Access 如何串成 Zero Trust 身分防線。
使用claude code+ antigravicli 3.8 flash 撰稿完成。Phase 3 驗收完成,Titan 科技的運算、網路與資料金庫已就緒。但 CTO 在進入 Phase 4 前拋出一個根本問題:「這些資源再怎麼堅固,如果任何人拿到一組帳密就能無限制地存取所有環境,城牆等於沒建。誰能進來、進來後能做什麼、在什麼條件下才被允許——這三個問題如果答不上來,前面 21 天的部署全部暴露在風險中。」
這正是 Phase 4 的起手式:身分是新的安全邊界 (Identity is the new perimeter)。傳統防火牆以網路邊界為主,但雲端環境中使用者從任何裝置、任何地點存取資源,網路邊界已經模糊。微軟的 Zero Trust 架構以身分驗證與條件式存取作為第一道防線,而 Microsoft Entra ID 正是這道防線的核心引擎。
今天的判斷鏈是 先驗證身分 (Authentication) → 再授與權限 (Authorization) → 以條件式存取動態調整 → 持續監控與風險回應。
把 Titan 的雲端平台想成一座城堡。Microsoft Entra ID 是城堡的門禁中心——它驗證每個人的身分證(Authentication),然後根據名單決定誰能進入哪些區域(Authorization)。SSO 像一張萬用通行卡,刷一次就能進入所有已授權的房間,不用每扇門各刷一次。MFA 像在門口多加一道指紋辨識,即使通行卡被偷,沒有你的指紋也進不來。Conditional Access 則像智慧門禁——如果你從陌生地點、用未知裝置、在深夜嘗試進入機密區域,系統會自動要求額外驗證甚至直接拒絕。
┌────────────────────────────────────────────────┐
│ 使用者 / 裝置 / 應用程式 / AI Agent │
└───────────────────────┬────────────────────────┘
▼
┌────────────────────────────────────────────────┐
│ ① Authentication(驗證:你是誰?) │
│ 密碼 + MFA / Passwordless / FIDO2 │
└───────────────────────┬────────────────────────┘
▼
┌────────────────────────────────────────────────┐
│ ② Conditional Access(條件式存取) │
│ 訊號:使用者 / 位置 / 裝置 / 風險等級 │
│ 決策:允許 / 要求 MFA / 封鎖 │
└───────────────────────┬────────────────────────┘
▼
┌────────────────────────────────────────────────┐
│ ③ Authorization(授權:你能做什麼?) │
│ RBAC 角色指派 → 資源存取 │
└────────────────────────────────────────────────┘
💡 架構師重點筆記:Authentication 與 Authorization 是兩個獨立步驟,AZ-900 常混用這兩個詞設陷阱。「登入成功但無法操作資源」= Authentication 通過、Authorization 不足(缺少 RBAC 角色)。「帳密錯誤無法登入」= Authentication 失敗,連 Authorization 的機會都沒有。
AZ-900 的另一個高頻陷阱是混淆 Tenant 與 Subscription:
| 概念 | 定義 | 類比 | 關鍵區別 |
|---|---|---|---|
| Tenant (租用戶) | 組織在 Microsoft Entra ID 中的專屬身分目錄實例 | 公司的員工名冊 | 一個 Tenant 底下可有多個 Subscriptions |
| Subscription (訂用帳戶) | Azure 資源的計費與管理邊界 | 公司的部門預算帳戶 | 一個 Subscription 只屬於一個 Tenant |
每位 Microsoft 365、Azure 或 Dynamics 365 的訂戶,其 Tenant 自動就是一個 Microsoft Entra 租用戶。Tenant 管身分,Subscription 管資源與帳單——兩者層次不同、不可混為一談。
在企業級雲端架構中,單一帳號無法滿足多團隊與合規隔離需求。AWS 透過 AWS Organizations 與 Control Tower 管理多個 AWS 帳號,並以 IAM Identity Center 建立統一登入;Azure 則以單一集中 Entra ID Tenant 串接多個 Subscriptions 與 Management Groups:
┌────────────────────────────────────────────────────────────┐
│ AWS 企業治理 (cxcxc-io 圖16) vs Azure Entra ID 架構映射 │
├────────────────────────────────────────────────────────────┤
│ AWS 組織治理模式: │
│ AWS Organizations / Control Tower │
│ ├── Management Account (根治理與 SCP 防護欄) │
│ ├── Shared Services (IAM Identity Center 統一 SSO/目錄)│
│ └── Member Accounts (Prod / Audit 各自獨立帳號邊界) │
├────────────────────────────────────────────────────────────┤
│ Azure 企業治理模式: │
│ Management Groups (管理群組階層治理與 Azure Policy) │
│ └── Microsoft Entra ID (全組織單一集中身分 Tenant) │
│ ├── Subscriptions (Prod / Dev 各自獨立計費邊界) │
│ └── Conditional Access (動態零信任存取決策) │
└────────────────────────────────────────────────────────────┘
💡 來源:改編自 cxcxc-io diagram_16(多帳號治理與企業級安全架構),已對照 Azure 服務調整。AWS 側以獨立 Account 作為安全與計費邊界並由 Control Tower/SCP 控管;Azure 則以單一 Entra ID Tenant 集中管理身分,再透過 Management Groups 與 Subscriptions 劃分層級邊界。
| Authentication(驗證) | Authorization(授權) | |
|---|---|---|
| 核心問題 | 你是誰? | 你能做什麼? |
| 執行時機 | 第一步 | 第二步(驗證通過後) |
| 機制 | 密碼、MFA、Passwordless、FIDO2 | RBAC 角色指派、Azure Policy |
| 失敗結果 | 無法登入 | 登入成功但無法存取特定資源 |
| AWS 對照 | IAM User 的密碼 / MFA | IAM Policy 的 Allow / Deny |
Single Sign-On (SSO,單一登入):使用者登入一次,就能存取所有已整合的應用程式(Microsoft 365、Azure Portal、自訂 SaaS 等),不需每個應用各登一次。降低密碼疲勞、減少弱密碼重用。
Multi-Factor Authentication (MFA,多因素驗證):在密碼之外加入第二個驗證因素——你知道的(密碼)+你擁有的(手機驗證碼)或你本身的(生物辨識)。即使密碼被竊取,攻擊者仍缺少第二因素。
Passwordless Authentication(無密碼驗證):以 FIDO2 安全金鑰、Microsoft Authenticator 或 Windows Hello 取代密碼,從根本消除密碼洩漏風險。密碼是最常被攻擊的驗證因素,移除它比加強它更安全。
Conditional Access 是 Microsoft 的 Zero Trust 策略引擎,其運作邏輯是 if-then 規則:
If 使用者要存取資源,then 根據訊號決定是否需要額外驗證或直接封鎖。
| 訊號類別 | 範例 |
|---|---|
| 使用者 / 群組 | 管理員 vs. 一般使用者 |
| IP 位置 | 公司網路 vs. 陌生國家 |
| 裝置狀態 | 合規裝置 vs. 未註冊裝置 |
| 應用程式 | Azure Portal vs. 一般 SaaS |
| 風險等級 | 正常登入 vs. 可疑行為(Entra ID Protection 偵測) |
| 決策 | 說明 |
|---|---|
| 允許 | 直接放行 |
| 要求 MFA | 允許但必須完成多因素驗證 |
| 要求合規裝置 | 只有已註冊且合規的裝置才能存取 |
| 封鎖 | 直接拒絕存取 |
💡 架構師重點筆記:Conditional Access 在第一因素驗證之後才觸發——它不是取代密碼的防線,而是根據登入情境動態升級安全要求。考題問「如何在管理員從陌生 IP 登入時強制 MFA?」,答案就是 Conditional Access Policy,不是 RBAC 也不是 Azure Policy。
| Microsoft Entra ID | Microsoft Entra Domain Services | |
|---|---|---|
| 定位 | 雲端原生身分與存取管理 | 受控傳統網域服務 |
| 協定 | OAuth 2.0、OpenID Connect、SAML | LDAP、Kerberos、NTLM、Group Policy |
| 適用場景 | 現代雲端應用、SaaS 整合 | 舊系統需要 domain join、LDAP 繫結 |
| 管理 | Microsoft 全託管 | Microsoft 部署與維護 DC,客戶設定 GP |
| AWS 概念對照 | IAM / IAM Identity Center | AD Connector / Managed AD |
⚠️ 名稱陷阱:題目描述「需要 LDAP、Kerberos、domain join」時,答案要選 Entra Domain Services,不是 Entra ID 本身。Entra ID 是雲端原生的現代驗證服務,不直接提供 LDAP 繫結或 Kerberos 驗證。這是 Day 7 四大陷阱中「名稱重組陷阱」的精確實例。
Microsoft Entra ID(原 Azure Active Directory)
Tenant(租用戶)
Authentication(驗證)
Authorization(授權)
Conditional Access(條件式存取)
Single Sign-On (SSO)
Multi-Factor Authentication (MFA)
Microsoft Entra Domain Services
Titan 科技原本使用簡單帳密登入所有系統,沒有 MFA,也沒有依情境調整安全等級。資安團隊近期發現多組管理員帳號的密碼出現在暗網洩漏資料庫中。CTO 下達四項要求:
CTO:「第一,所有員工只需登入一次就能存取 Microsoft 365、Azure Portal 與內部 SaaS 系統。第二,所有管理員帳號必須啟用 MFA。第三,當管理員從未知 IP 登入時,系統自動要求額外驗證。第四,有一批舊系統仍需 LDAP 與 Kerberos,但我不想在 Azure 上自己架網域控制器。」
本日真題 1–3 改寫自 ExamTopics 社群回報的身分管理高頻考點,已經 Microsoft Learn 逐選項交叉驗證;真題 4–5 改寫自 2020 年 gratisexam 題庫。
Titan 科技的員工成功登入 Azure Portal(帳號密碼正確),但無法修改任何正式環境的資源。這個問題出在哪個環節?
B. Authorization(授權)不足
Titan 科技要確保管理員從公司網路以外的位置登入 Azure Portal 時,系統自動要求 MFA。應使用什麼機制?
B. Conditional Access Policy
Titan 科技有一批舊系統必須使用 LDAP 繫結與 Kerberos 驗證,但不想在 Azure VM 上自行部署與維護網域控制器。應使用什麼服務?
B. Microsoft Entra Domain Services
⚠️ 來源說明:本題改寫自 2020 年 gratisexam AZ-900 題庫(Q89 改編),屬歷史題庫層,已與 Microsoft Learn 交叉驗證,核心觀念仍有效。
Titan 科技希望員工只需登入一次就能存取 Microsoft 365、Azure Portal 與自訂的內部 SaaS 應用。這種做法稱為?
B. Single Sign-On (SSO)
⚠️ 來源說明:本題改寫自 2020 年 gratisexam AZ-900 題庫(Q91 改編),屬歷史題庫層,已與 Microsoft Learn 交叉驗證,核心觀念仍有效。
Titan 科技為管理員啟用 MFA。以下哪一組是 MFA 的兩個有效驗證因素?
B. 密碼 + 手機驗證碼
Titan 科技的 CTO 問:「我們有一個 Microsoft Entra ID 租用戶和三個部門。每個部門需要獨立的計費。正確做法是?」
B
Titan 科技要從根本降低密碼洩漏風險。以下哪種做法最有效?
B
Titan 科技要讓合作夥伴使用他們自己的 Google 帳號登入 Titan 的 Azure 資源,不需要為他們建立新帳號。應使用什麼功能?
A
Azure 與 AWS 的身分管理有一個根本差異:AWS IAM 將使用者、群組、角色、Policy 全部集中在 IAM 服務裡;Azure 則把「身分管理」(Entra ID)與「資源授權」(Azure RBAC)拆成兩個獨立系統。Entra ID 管「你是誰」,RBAC 管「你能對資源做什麼」。
┌────────────────────────────────────────────┐
│ AWS:IAM 統一處理身分 + 權限 │
│ User → Policy → Resource │
├────────────────────────────────────────────┤
│ Azure:拆成兩個系統 │
│ Entra ID (身分) → RBAC (資源權限) │
│ Conditional Access 插在中間做動態決策 │
└────────────────────────────────────────────┘
情境題目: Titan 科技的安全團隊要求:當 DevOps 工程師嘗試透過 AWS Management Console 或 CLI 執行正式環境資源的敏感操作(例如終止生產 EC2 執行個體)時,必須同時滿足「從企業辦公室出口 IP 連線」且「已透過 MFA 完成驗證」,否則立即拒絕操作。在 AWS 架構中應如何實現此動態控制?
Condition 區塊,設定 aws:SourceIp 與 aws:MultiFactorAuthPresent 進行明確拒絕 (Deny)┌────────────────────────────────────────────────────────────┐
│ 條件式存取 vs IAM Policy 動態決策流程 │
├────────────────────────────────────────────────────────────┤
│ 存取要求 (User / Role / Client) │
│ │ │
│ ▼ │
│ 條件訊號評估 (Condition Evaluation) │
│ ├── AWS:aws:SourceIp / aws:MultiFactorAuthPresent │
│ └── Azure:位置 / 裝置合規 / 使用者風險等級 │
│ │ │
│ ▼ │
│ 執行控制決策 (Enforcement Decision) │
│ ├── 符合條件 ──> 放行 (Grant Access / Allow) │
│ └── 未達要求 ──> 要求 MFA (Step-up) 或直接封鎖 (Deny) │
└────────────────────────────────────────────────────────────┘
答案:B。 AWS IAM Policy 的 Condition 區塊允許架構師根據請求上下文(Contextual Signals)動態判定。搭配 aws:SourceIp 與 Bool 判斷 aws:MultiFactorAuthPresent: "true",並使用 Effect: "Deny"(搭配 NotAction 或 NotIpAddress),能實作不可繞過的防護圍欄。A 只能管進入 VPC 的網路流量,無法約束 Console/IAM API 操作;C 造成身分管理混亂且無法動態驗證 MFA 狀態;D 用於 S3 物件防竄改,與 API 呼叫控制無關。
Azure 知識映射與連動解析:
對應至 Azure AZ-900 考點,這正是 Conditional Access Policy(條件式存取原則) 的核心職責!AZ-900 考題若出現「當使用者從未受信任的位置登入時強制 MFA」或「非公司受管裝置禁止存取 Portal」,正解必定是 Conditional Access。架構師須認清:AWS 是將條件邏輯寫入 JSON IAM Policy/SCP 的 Condition 元素中;Azure 則是獨立出專屬的策略引擎(Conditional Access),以 Zero Trust「永不信任,始終驗證 (Never Trust, Always Verify)」的 if-then 模型動態把關。
情境題目: Titan 科技收購了一家新創公司,該公司原本擁有一批依賴傳統 Windows 網域(Active Directory)的內部會計系統,需要進行 LDAP 查詢與 Kerberos 驗證。Titan 希望將系統遷移至雲端虛擬機,但不希望在雲端自行架設、備份與修補兩台 Windows Domain Controller 虛擬機器。在 AWS 與 Azure 中分別對應什麼架構?
答案:A。 關鍵字為「傳統 LDAP 查詢」、「Kerberos 驗證」且「免自行維護網域控制器」。AWS Managed Microsoft AD 是由 AWS 完全託管的真實 Windows AD 基礎設施;而在 Azure 中,這正是 Microsoft Entra Domain Services(全託管傳統網域服務,提供 LDAP、Kerberos、NTLM 與網域加入能力)。B 中的 Cognito 與 Entra ID 皆為現代雲端原生身分(OAuth 2.0 / OIDC / SAML),不直接提供 Kerberos/LDAP 繫結;C 與 D 服務定位完全偏離目錄驗證。
雙雲考場口訣:
先驗證身分,再授與權限——順序不可逆Entra ID ↔ IAM + Identity Center(方向性對照)Conditional Access ↔ IAM Conditions + SCP(方向性對照)Entra Domain Services ↔ AWS Managed Microsoft AD / AD Connector密碼是攻擊面,Passwordless 才是防禦的終點
| 項目 | 內容 |
|---|---|
| 對應課程章節 | 第 2 章 ▸ Identity/Access/Security 概觀、Entra ID、Tenant/Directory/Domain、Entra ID vs Entra Domain Services、Authentication vs Authorization、SSO/MFA/Passwordless、Conditional Access(p103–109、p111) |
| 官方考綱領域 | Describe Azure Architecture & Services(占比 35–40%) |
| 課程涵蓋範圍 | Entra ID 基礎、Tenant 與 Directory 概念、Entra ID 與 Entra Domain Services 的區別、Authentication vs Authorization 兩階段、SSO/MFA/Passwordless 三種驗證強化、Conditional Access 的 if-then 邏輯。 |
| 本文補充範圍 | 1. 課程未談 Azure AD 更名為 Microsoft Entra ID 造成的新舊題目敘述差異——本文統一使用現行名稱並標註舊稱。2. 以 AWS IAM 建立 Entra ID 的記憶錨點,對比兩者「身分與權限是否合一」的架構差異。3. 補充 Conditional Access 的訊號 / 決策矩陣與 Zero Trust 策略引擎定位。4. 補充 External ID 的外部身分整合場景。 |
身分已就位,明天 Day 23 我們將深入 Role-Based Access Control (RBAC),拆解「誰 (Security Principal) 能在什麼範圍 (Scope) 做什麼 (Role Definition)」的三元組,並對照 AWS IAM Policy,學會以最小權限原則保護 Titan 科技的每一層資源。
(如果你能清楚區分 Authentication 與 Authorization、說出 Conditional Access 的 if-then 邏輯、並判斷何時該用 Entra ID 而非 Entra Domain Services,恭喜你已掌握雲端身分安全的第一道防線!)